Method and apparatus for modifying graphics content prior to display for color blind use

ABSTRACT

Embodiments of the present invention provide a method and apparatus for dynamically modifying computer graphics content for colors and/or patterns that are problematic for color-blind viewers prior to display. In particular, graphics content may be modified in various stages of the graphics pipeline, including but not limited to, the render or raster stage, such that images provided to the user are visible to color-blind viewers upon display without further modification.

RELATED APPLICATIONS

This Application is a Continuation of Ser. No. 09/991,629, filed on Nov.21, 2001, entitled “Method and Apparatus for Modifying Graphics ContentPrior to Display for Color Blind Users”.

BACKGROUND

1. Field

The present invention relates generally to color blind systems and moreparticularly to filtering graphics to enable color-blind viewing.

2. Background Information

Computer graphics systems are commonly used for displaying graphicalrepresentations of objects on a two-dimensional video display screen.Current computer graphics systems provide highly detailedrepresentations and are used in a variety of applications. Such systemstypically come pre-installed with a plethora of accessibility tools forpeople with disabilities. Yet, providing color corrected graphics forpeople who suffer from color blindness still remains a challenge.

More than 20 million Americans, many of them computer users, experiencesome form of color blindness, which is the inability to distinguishcertain colors. When light enters the eye, it passes through severalstructures before striking the light sensitive receptors in the retinaat the back of the eye. These receptors are called rods and cones. Rodare responsible for night vision, and cones are responsible for colorvision, functioning best under daylight conditions.

Each of the three types of cones, red cones, blue cones and green cones,has a different range of light sensitivity. In an individual with normalcolor vision, the cone population consists of approximately 74 percentred cones, 10 percent green cones and 16 percent blue cones. Thestimulation of cones in various combinations accounts for the perceptionof colors. For example, the perception of yellow results from acombination of inputs from green and red cones, and relatively littleinput from blue cones. If all three cones are stimulated, white isperceived as the color. Defects in color vision occur when one of thethree-cone cell coding structures fails to function properly. One of thevisual pigments may be functioning abnormally, or it may be absentaltogether. Most color-deficient individuals have varieties of red orgreen deficiency.

Since most color-blind people see black and white accurately, color isnot an issue if images are in grayscale. However, most applications andweb sites are heavily color reliant. Color is a particular problem withimage maps in which clickable areas are delineated by color. Applicationand website designers have attempted to address this problem byenhancing areas by placing underlined text or a black outline in theimage. Another technique is to place colors against an appropriatebackground where they can be more visible. Furthermore, considering thatmost color-blind people have a red-green color blindness, limiting usingred and green together is another option. However, this limits thepalette of acceptable colors. Consequently, very few application and webdevelopers are willing to sacrifice having a flashier site toaccommodate color-blind users.

What is needed therefore is a method, apparatus and system for providingcolor corrected graphics for color-blind users.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an embodiment for providing colorcorrected graphics for color-blind users.

FIG. 2 illustrates a block diagram of an embodiment of a computergraphics system for implementing color corrected graphics forcolor-blind users.

FIG. 3 illustrates a block diagram of an embodiment of a graphicspipeline including implementation of the color corrected graphics at therender and raster stages.

FIG. 4 illustrates a block diagram of an embodiment of a graphics deviceincluding a color blind filter implemented in the render stage.

FIG. 5(a) illustrates a non-color corrected image as seen by acolor-blind user.

FIG. 5(b) illustrates a color-corrected image as seen by a color-blinduser.

FIG. 5(c) illustrates a color-corrected generated by overlaying apattern on top of a difficult to see color.

FIG. 6 illustrates a flow diagram of an embodiment of a process forproviding color corrected graphics for color-blind users implemented atthe render stage.

FIG. 7 illustrates a block diagram of an embodiment of a graphics deviceincluding a color blind filter implemented in the raster stage.

FIG. 8 illustrates a flow diagram of an embodiment of a process forproviding color corrected graphics for color-blind users implemented atthe raster stage.

DETAILED DESCRIPTION

FIG. 1 illustrates a block diagram of an embodiment 10 for providingcolor corrected graphics for color-blind users. Embodiments of thepresent invention provide a method and apparatus for dynamicallymodifying computer graphics content for colors and/or patterns that areproblematic for visually challenged, in particular color-blind viewers,prior to display. In particular, graphics content may be modified invarious stages of the graphics pipeline, including but not limited to,the render or raster stage, such that images provided to the user arevisible to color-blind viewers upon display without furthermodification. As illustrated and discussed in detail below, embodimentsof the present invention may be implemented in hardware, software or acombination thereof.

In particular, referring to FIG. 1, graphics content 12 in the form ofan original screen image (e.g. in pixels or other format) is provided tothe color-blind filter 14 of the present invention. The color-blindfilter 14 detects colors and modifies images. In particular, thecolor-blind filter analyzes computer graphics content in accordance withpredefined color profiles that identify which graphics may beproblematic for color challenged users. It then modifies problematicgraphics content that falls within at least one of the predefined colorprofiles such that the graphics content is visible to color challengedusers. Display technology 16, such as a graphics card or operatingsystem video card driver displays the modified image.

In the detailed description, numerous specific details are set forth inorder to provide a thorough understanding of the present invention.However, it will be understood by those skilled in the art that thepresent invention maybe practiced without these specific details. Inother instances, well-known methods, procedures, components and circuitshave been described in detail so as not to obscure the presentinvention.

Some portions of the detailed description that follow are presented interms of algorithms and symbolic representations of operations on databits or binary signals within a computer. These algorithmic descriptionsand representations are the means used by those skilled in the dataprocessing arts to convey the substance of their work to others skilledin the art. An algorithm is here, and generally, considered to be aself-consistent sequence of steps leading to a desired result. The stepsinclude physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. It has proven convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, characters, terms, numbers or the like.It should be understood, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the specification,discussions utilizing such terms as “processing” or “computing” or“calculating” or “determining” or the like, refer to the action andprocesses of a computer or computing system, or similar electroniccomputing device, that manipulate and transform data represented asphysical (electronic) quantities within the computing system's registersand/or memories into other data similarly represented as physicalquantities within the computing system's memories, registers or othersuch information storage, transmission or display devices.

Embodiments of the present invention may be implemented in hardware orsoftware, or a combination of both. However, embodiments of theinvention may be implemented as computer programs executing onprogrammable systems comprising at least one processor, a data storagesystem (including volatile and non-volatile memory and/or storageelements), at least one input device, and at least one output device.Program code may be applied to input data to perform the functionsdescribed herein and generate output information. The output informationmay be applied to one or more output devices, in known fashion. Forpurposes of this application, a processing system includes any systemthat has a processor, such as, for example, a digital signal processor(DSP), a microcontroller, an application specific integrated circuit(ASIC), or a microprocessor.

The programs may be implemented in a high level procedural or objectoriented programming language to communicate with a processing system.The programs may also be implemented in assembly or machine language, ifdesired. In fact, the invention is not limited in scope to anyparticular programming language. In any case, the language may be acompiled or interpreted language.

The programs may be stored on a storage media or device (e.g., hard diskdrive, floppy disk drive, read only memory (ROM), CD-ROM device, flashmemory device, digital versatile disk (DVD), or other storage device)readable by a general or special purpose programmable processing system,for configuring and operating the processing system when the storagemedia or device is read by the processing system to perform theprocedures described herein. Embodiments of the invention may also beconsidered to be implemented as a machine-readable storage medium,configured for use with a processing system, where the storage medium soconfigured causes the processing system to operate in a specific andpredefined manner to perform the functions described herein.

An example of one such type of processing system is shown in FIG. 2.Sample system 100 may be used, for example, to execute the processingfor methods in accordance with the present invention, such as theembodiment described herein. Sample system 100 is representative ofprocessing systems based on the microprocessors available from IntelCorporation, although other systems (including personal computers (PCs)having other microprocessors, engineering workstations, set-top boxesand the like) may also be used. In one embodiment, sample system 100 maybe executing a version of the WINDOWS^(TM) operating system availablefrom Microsoft Corporation, although other operating systems andgraphical user interfaces, for example, may also be used.

FIG. 2 illustrates a block diagram of an embodiment of a computergraphics system for implementing color corrected graphics forcolor-blind users. The computer system 100 includes central processor102, graphics and memory controller 104 including graphics engine 106,memory 108 and display device 114. Processor 102 processes data signalsand may be a complex instruction set computer (CISC) microprocessor, areduced instruction set computing (RISC) microprocessor, a very longinstruction word (VLIW) microprocessor, a process implementing acombination of instruction sets, or other processor device, such as adigital signal processor, for example. Processor 102 may be coupled tocommon bus 112 that transmits data signals between processor 102 andother components in the system 100. FIG. 2 is for illustrative purposesonly. The present invention can also be utilized in a discrete graphicsconfiguration. The present invention can also be utilized in a discreteor other graphics configuration.

Processor 102 issues signals over common bus 112 for communicating withmemory 108 or graphics and memory controller in order to manipulate dataas described herein. Processor 102 issues such signals in response tosoftware instructions that it obtains from memory 108. Memory 108 may bea dynamic random access memory (DRAM) device, a static random accessmemory (SRAM) device, or other memory device. Memory 108 may storeinstructions and/or data represented by data signals that may beexecuted by processor 102, graphics engine 106 or some other device. Theinstructions and/or data may comprise code for performing any and/or allof the techniques of the present invention. Memory 108 may also containsoftware and/or data. An optional cache memory 110 may be used to speedup memory accesses by the graphics engine 106 by taking advantage of itslocality of access. One skilled in the art will recognize that the cachememory 110 can reside internal or external to the processor 102 orgraphics engine 106.

In some embodiments, graphics engine 106 can offload from processor 102many of the memory-intensive tasks required for rendering an image.Graphics engine 106 processes data signals and may be a complexinstruction set computer (CISC) microprocessor, a reduced instructionset computing (RISC) microprocessor, a very long instruction word (VLIW)microprocessor, a process implementing a combination of instructionsets, or other processor device, such as a digital signal processor, forexample. Graphics engine 106 may be coupled to common bus 112 thattransmits data signals between graphics engine 106 and other componentsin the system 100, including display cache 110 and display device 114.Graphics engine 106 includes rendering hardware that among other thingswrites specific attributes (e.g. colors) to specific pixels of display114 and draw complicated primitives on display device 114. Graphics andmemory controller 104 communicates with display device 114 fordisplaying images rendered or otherwise processed by a graphicscontroller 104 for displaying images rendered or otherwise processed toa user. Display device 114 may comprise a computer monitor, televisionset, flat panel display or other suitable display device.

Memory 108 stores a host operating system that includes one or morerendering programs to build the images of graphics primitives fordisplay. In particular, the method for providing color correctedgraphics content to color-blind users may be stored in memory 108. Thegraphics primitives produced are laid out or rendered in the buffermemory for display on display device 114. System 100 includes graphicsengine 106, such as a graphics accelerator that uses customized hardwarelogic device or a co-processor 104 to improve the performance ofrendering at least some portion of the graphics primitives otherwisehandled by host rendering programs. The graphics engine 106 iscontrolled by the host operating system program and its host graphicsapplication program interface (API) through a driver program. Thegraphics primitives produced thereby are laid out or rendered in thebuffer memory for display on display device 114.

FIG. 3 illustrates a block diagram of an embodiment 200 of a graphicspipeline including implementation of the color corrected graphics at therender and raster stage. Rendering is considered to be the entireprocess of taking models (usually 3D although could be 2D), performinglighting, viewing, clipping, composition and other activities to arriveat a final 2D image. Rasterization, or Rastering, is considered to be asingle stage process of determining a set of pixels values (based upon acurrent display mode color depth, etc.), for display on the screen.Rendering is typically a multi-stage process, whereas rasterization istypically a one-stage process. The result of a rendering pipeline is fedinto the raster for display. Modern computer monitors are commonlycalled “raster display devices” for this reason—they display informationon screen via a set of bytes that represent a series of pixels. This setof pixels is often called the refresh buffer, or more commonly the framebuffer. Pixels in the frame buffer are piped to the raster display (e.g.your monitor). For a very simple display that was just a singlebit-mapped image, there is no rendering. The graphics engine simplyrasters (i.e. BitBlt's) the image into the graphics card frame buffer,or directly to the display.

The color-blind filter can be implemented anywhere along the graphicspipeline. For example, as discussed in detail below, in one embodiment,a rendering engine 202 generates graphics data based upon the geometricprimitives and associated rendering commands. A color-blind analyzer,implemented via display controller or display device driver 204, incommunication with the rendering engine 202 analyzes graphics datagenerated by the rendering engine 202 and modifies selected graphicsdata into color corrected data suitable for a visually challengedviewer. The rendering engine 202 then concludes rendering of the colorcorrected data into a color corrected image for further processing 206208 and display 210.

As discussed in detail below, in another embodiment, at the raster stage206, a scan-convert processor converts the geometric primitives toproduce rasterized pixel data including color data for pixel locationsin the image. A private memory area separate from the frame bufferstores the rasterized pixel data. A color-blind analyzer incommunication with the private memory area analyzes the rasterized pixeldata stored in the private memory area and modifies selected rasterizedpixel data into color corrected pixel data for further processing 206208 and display 210.

Color Blind Modification Implemented At Render Stage

FIG. 4 illustrates a block diagram of an embodiment 300 of a graphicsdevice 302 including a color blind filter 304 implemented in the renderstage 306. Referring to FIG. 3, color-blind modification is implementedat the render stage of the graphics pipeline prior to rasterization ofthe image into the frame buffer. Rendering is the process of generatingtwo-dimensional images of data for display on a monitor. Typically,rendering includes processing geometric primitives (e.g., points, linesand polygons) to determine component pixel values for the monitordisplay, a process often referred to specifically as rasterization.

In particular, referring to FIG. 4, a control unit 308 supervises theoperation of the graphics device 302. Upon receiving a graphics order torender a scene, the control unit 308 passes the graphics data associatedwith the graphics order on to a rendering pipeline 306. The renderingpipeline 306 transforms the graphics data associated with the graphicsorder from the model coordinate system to a normalized device coordinatesystem designated the view coordinate system and clips the graphics dataagainst a predetermined view volume. In addition, depending upon theshading algorithm to be applied, an illumination model is evaluated atvarious locations (i.e. the vertices of the primitives and/or the pixelscovered by a given primitive). The transformed and clipped graphics datais then passed on to a rasterization stage 308 that converts thetransformed primitives into pixels, and generally stores eachprimitive's contribution at each pixel. One skilled in the art willrecognize that the rendering pipeline 306 may be organized in a varietyof architectures and is not limited to the configuration describedherein. The present invention provides a color correction mechanism withperspective correction that may be integrated into any stage of therendering pipeline 306. For the sake of description, an example of acommon graphics pipeline is set forth below.

More specifically, as shown in FIG. 4, a common rendering pipeline 306includes multiple stages, typically including one or more of thefollowing: modeling 310, lighting 312, viewing 314, clipping 316,composition 318 and other stages.

During or before the graphics content is rendered and prior torasterization, graphics content, including but not limited to, images,constructs and shapes are analyzed to determine if there is any content(e.g. colors) that would be problematic for persons with colorblindness. If any content is found to be problematic for color-blindusers, the contents' properties (or individual pixels if at the rasterstage) are modified to reflect adjusted color or pattern shapes that aresuitable for color-blind users. For example, analysis of shadeproperties could indicate a grouping of two or more distinct colorsarranged such that a color-bind person would be unable to detect thepresence of two separate shades, and would instead see them as just oneflat color. Embodiments of the present invention, upon detecting thispattern, would modify one or more of the colors to some other color thatwill provide contrast to the other shades, allowing the color-blindperson to see the distinct color shades, where before there was but oneprior to modification.

If the original models contain complex color information suitable formodification, colors within a specific color blind range can be modifiedin the original model itself. Note that this process would probably bestbe performed after lighting, viewing, and composition are performed, asthese stages may change the color properties of 3D models. One skilledin the art will recognize that color-blind modification can be performedprior to any one of these stages.

Additionally, in another embodiment, stock images, textures, orgeometric shapes stored by application programs, as part of graphicslibraries, or as part of the graphics subsystem itself could be modifiedper this invention earlier in the graphics pipeline (i.e. before pixelrasterization) using the same or similar methods. For example, a JPEGimage texture used in an application could be analyzed to determine ifany pixel color patterns would obscure different shades of colors to thecolor-blind person. If such patterns are found, the individual imagepixels could be modified so that when used in the future (e.g. as atexture), the analysis and modification had already been performed.

For example, in a Windows-based operating system, the present inventionmay be implemented in the Graphics Display Interface (GDI) subsystem,some combinations of the GDI and graphics card device driver, orcompletely in the graphics device driver. The present invention couldalso be implemented in a graphics card that facilitates or has renderingcapability. In graphics cards with rendering capability, the color-blindmodifications can be executed internally on the graphics card.

Referring to FIG. 5(a)-(c), the following images result from graphicsoperands may be contained in either system memory or local memory tofacilitate the color-blind modification process: a rendering operandthat contains data forming a newly created 2D object 400 (could also beused to create a 3D object) (FIG. 5(a)), a modification operand toanalyze and modify the date if the color-blind filter is triggered by auser, a color modification operand 402 that is used to provide analternative stream of graphics color data instead of the dataproblematic to a color-blind user (FIG. 5(b)), an overlay operand 404that is used to provide an alternative stream of graphics data insteadof the data problematic to a color-blind user (FIG. 5(c)), and a displayoperand that contains data used for displaying the modified 3D object.It is contemplated that other operands may be contained in system memoryor local memory for color-blind modification such as commands and thelike.

Thus, according to the present invention, an efficient color correctionmechanism is provided that may be integrated into the rendering pipelineof FIG. 4, or may be integrated into other rendering architectures. FIG.6 illustrates a flow diagram of an embodiment 500 of a process forproviding color corrected graphics for color-blind users implemented atthe render stage. Assuming the color blind filter of the presentinvention is set as a default state or enabled by a user, the scene ispassed to a rendering pipeline (step 502) where it is subjected tovarious processing stages (step 504), including one or more of thefollowing: modeling, lighting, viewing, clipping, composition and otherstages. During or before the graphics content is rendered and prior torasterization, the graphics content is analyzed to determine if there isany content that would be problematic to a color-blind user (step 506).If the content is not problematic for color-blind users (step 508), nomodifications are made to the graphics content. If the content isproblematic for color-blind users (step 508), the appropriate changesare made (step 510). Steps 506-510 are repeated until all of thegraphics content is analyzed (step 512). The graphics content is thenpassed to the raster stage for further processing and display (step514).

Color Blind Filter Implemented At Rasterization

FIG. 7 illustrates a block diagram of an embodiment 600 of a graphicsdevice 610 including a color blind filter 602 implemented in the rasterstage 604 of the graphics pipeline prior to the image being displayed614 to a color-blind user. A control unit 612 supervises the operationof the graphics device 610. During the raster stage 604, graphicscontent, including but not limited to, images, constructs and shapes areanalyzed to determine if there content (e.g. colors) that would beproblematic for persons with color blindness. If any content is found tobe problematic for color-blind users, the contents' properties aremodified to reflect adjusted color or pattern shapes that are suitablefor color-blind users.

The color-blind filter for improving or modifying color images accordingto the invention can be implemented in many ways. One skilled in the artwill recognize that the present invention is not limited to a particularimplementation. In some cases, simply changing the color can be used togenerate an image amenable to a color-blind user. For example, colorsthat are difficult to for color-blind users to discern, such as red andgreen, are identified. Graphics content including colors such as red andgreen are replaced with non-problematic colors. In another embodiment, apattern is overlaid on top any difficult to see colors to provide animage viewable to a color-blind user. In yet another embodiment,graphics content is enhanced with underlined text or a black outline.Furthermore, colors can be positioned against a background where theycan be more visible. If no visibility problems are detected, nomodification is made to the graphics content.

In particular, the analysis could be performed as follows: Movingthrough the from start to finish, take a block of (x1, y1), (x2, y2)pixels and perform per-pixel color analysis to find color patterns inthe frame buffer that would affect the color blind person based upontheir specific form of color blindness. In each block, the problempixels are modified either individually (to a neutral color such aswhite or black), or as an aggregate grouping of pixels (create a newpattern overlaid on top of the problem pixel region). In particular,referring to FIGS. 5 (a)-(c), blocks of individual pixels could beanalyzed to determine if color patterns would affect the color blindperson based upon their specific form of color blindness. The blocksanalyzed are not limited to a particular region or shape. For example,the regions examined could be in any shape, including but not limited tocircles, ovals, triangles and so forth.

In another embodiment, any and all pixels that fall within a specificcolor range (based upon the persons specified form of color blindness)simply be changed to some other neutral color. For example, if shades ofthe color blue (specified by a range of R,G,B values) are problematicfor the color blind user, then all pixels falling within that range ofR,G,B values are modified (in this case irrespective of whatever otherpixel colors are surrounding them) to some other non-problem color (e.g.white, black, etc.).

Referring now to FIG. 7, an embodiment of frame buffer memory 606 andprivate area memory 608 is shown. Rastering primitives to generate framebuffer data typically involves dividing the primitive into scan lines,single-pixel thick horizontal or vertical regions of the primitive. Scanlines are also referred to as spans, a term used interchangeably torefer to a scan line or the series of adjacent pixels which make up ascan line. Graphics content may be alternatively located in either ofthese two memories 606 608 based upon whether the graphics content needsto be analyzed and modified for color-blind users. If the color-blindfilter 602 of the present invention is activated, graphics content maybe moved to a private area memory 608 where it is analyzed and modifiedif needed prior to being made available for further processing anddisplay. Private area memory 608 is preferably static allocated memory,either already on the graphics card, part of the GDI, or memory mappedto system memory. In a typical implementation, the individual rasterizedpixels stored in the private memory area 608 are analyzed to determineif any color combinations exist that would be problematic for personswith color blindness. If so, the individual pixel values are modifiedaccordingly, and the now modified set of scan lines in the privatememory area 608 is made available for further processing and display.For example, in a software implementation, the modified set of scanlines is made available to the graphics card either by copying into thephysical graphics card, or moving into the designated location in framebuffer memory 606. In a hardware implementation, the shape/imagemodifications are executed on the graphics card. In particular, insteadof implementing the present invention using scan-lines, BitBlittingcould be used.

Referring to FIG. 5(a)-(c), the following images result from graphicsoperands may be contained in private area memory 608 to facilitate thecolor-blind modification process: a raster operand that contains dataforming a newly created 2D object 400 (could also be used to create a 3Dobject) (FIG. 5(a)), a modification operand to analyze and modify thedate if the color-blind filter is triggered by a user, a colormodification operand 402 that is used to provide an alternative streamof graphics color data instead of the data problematic to a color-blinduser (FIG. 5(b)), and an overlay operand 404 that is used to provide analternative stream of graphics data instead of the data problematic to acolor-blind user (FIG. 5(c)). It is contemplated that other operands maybe contained in private area memory for color-blind modification such ascommands and the like.

Thereafter, the graphics controller processes the three-dimensionalcolor corrected image to be displayed. In a software implementation,during this processing stage, the color corrected graphics content istransferred to the graphics card either by copying into the physicalgraphics card, or moving into the designated location in system memory.In a hardware implementation, the shape/image modifications are executedon the graphics card.

FIG. 8 illustrates a flow diagram of an embodiment 700 of a process forproviding color corrected graphics for color-blind users implemented atthe raster stage. Assuming the color blind filter of the presentinvention is set as a default state or enabled by a user, the scene ispassed from the rendering stage to the rasterization stage (step 702).Scan lines are generated based upon the graphics content received (step704). The graphics content is moved to a private area memory (step 706)and analyzed to determine if there is any content that would beproblematic to a color-blind user (step 708). If the content is notproblematic for color-blind users (step 708), no modifications are madeto the graphics content and it is made available for further processingand display (step 714) if there is no further graphics content to beprocessed (step 714). If the content is problematic for color-blindusers (step 708), appropriate changes are made (step 710). Steps 708-710are repeated until all of the graphics content is analyzed (step 712).The graphics content is then made available for further processing anddisplay (step 714).

Having now described the invention in accordance with the requirementsof the patent statutes, those skilled in the art will understand how tomake changes and modifications to the present invention to meet theirspecific requirements or conditions. Such changes and modifications maybe made without departing from the scope and spirit of the invention asset forth in the following claims.

1. An apparatus, comprising: a rendering engine to generate graphicsdata based upon geometric primitives and associated rendering commands;and a color-challenged analyzer to analyze graphics data generated bythe rendering engine and modify selected graphics data into colorcorrected data suitable by overlaying a pattern on top of colorcharacteristics problematic for a viewer, wherein the rendering enginerenders the color corrected data into a color corrected image forfurther processing and display.
 2. The apparatus of claim 1, wherein thecolor corrected data comprises modified color data.
 3. The apparatus ofclaim 1, wherein the color corrected data comprises modified patterndata.
 4. The apparatus of claim 1, wherein the graphics data's colorcharacteristic is modified to a color characteristic suitable for theviewer.
 5. The apparatus of claim 1, further comprising: a graphicsmemory for storing the graphics data.
 6. A method, comprising:generating graphics data based upon geometric primitives and associatedrendering commands; analyzing graphics data and modifying selectedgraphics data into color corrected data by overlaying a pattern on topof color characteristics problematic for a viewer; and rendering thecolor corrected data into a color corrected image for further processingand display.
 7. The method of claim 6, wherein the color corrected datacomprises modified color data.
 8. The method of claim 6, wherein thecolor corrected data comprises modified pattern data.
 9. The method ofclaim 6, wherein analyzing graphics data and modifying selected graphicsdata into color corrected data by overlaying a pattern on top of colorcharacteristics problematic for a viewer further comprises: analyzingintermediate graphics data and converting selected intermediate graphicsdata into color corrected data suitable for the viewer.
 10. The methodof claim 9, wherein analyzing intermediate graphics data and convertingselected intermediate graphics data into color corrected data suitablefor the viewer further comprises: modifying the intermediate graphicsdata's color characteristic to a color characteristic suitable for theviewer.
 11. The method of claim 9, wherein analyzing intermediategraphics data and converting selected intermediate graphics data intocolor corrected data suitable for a visually challenged viewer furthercomprises: modifying the intermediate graphics data's patterncharacteristic to a pattern characteristic suitable for a visuallychallenged viewer.
 12. An article comprising a machine-accessible mediahaving associated data, wherein the data, when accessed, results in amachine performing: analyzing computer graphics content in accordancewith predefined color profiles; modifying graphics content that fallswithin at least one of the predefined color profiles by overlaying apattern on top of color characteristics problematic to selected users;and facilitating display of the modified graphics content.
 13. Themethod of claim 12, wherein modifying graphics content comprisesmodifying color data.
 14. The method of claim 12, wherein modifyinggraphics content comprises modifying pattern data.